import time
import unittest
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.support.ui import WebDriverWait


class Appcommon(unittest.TestCase):
    def setUp(self) -> None:
        device = {'platformName': 'Android',  # 设备类型；
                  'platformVersion': '10',  # 设备的类型的版本号，如果是安卓，填写大的版本号即可，小数不用填
                  'deviceName': '9dcecc37'}  # 设备的名称，这个和后续的测试没有多大关系
        self.dr = webdriver.Remote(
            'http://127.0.0.1:4723/wd/hub',
            device)  # /wd/hub 路径是固定的，device是初始化设置的字典；

    def elements(self, loc, index=0):
        if index == 0:
            def elements(x): return x.find_element(*loc)
        else:
            def elements(x): return x.find_elements(*loc)[index]
        return WebDriverWait(self.dr, 10, 0.5).until(elements)

    def click(self, loc, index=0):
        self.elements(loc, index).click()

    def text(self, loc, index=0):
        return self.elements(loc, index).text

    def back(self):
        time.sleep(0.5)
        self.dr.back()

    def test_01(self):
        '''点击进入新闻中心'''
        self.dr.press_keycode(3)  # 点击回到主界面
        self.click((AppiumBy.XPATH, '//*[@text="粤农交"]'))  # 点击桌面小程序快捷方式
        self.click((AppiumBy.XPATH, '//*[@text="新闻中心"]'))

    def test_02(self):
        '''点击进入交易公告'''
        self.click((AppiumBy.XPATH, '//*[@text="交易公告"]'))
